home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.util.Hashtable;
-
- public final class InetAddress {
- private static boolean inCheck;
- String hostName;
- int address;
- int family;
- static Hashtable addressCache;
- static InetAddress unknownAddress;
- static InetAddress anyLocalAddress;
- static InetAddress localHost;
- private static InetAddress loopbackHost;
-
- InetAddress() {
- }
-
- InetAddress(String var1, byte[] var2) {
- this.hostName = new String(var1);
- this.family = getInetFamily();
- this.address = var2[3] & 255;
- this.address |= var2[2] << 8 & '\uff00';
- this.address |= var2[1] << 16 & 16711680;
- this.address |= var2[0] << 24 & -16777216;
- }
-
- public String getHostName() {
- if (this.hostName == null) {
- try {
- this.hostName = getHostByAddr(this.address);
- } catch (UnknownHostException var1) {
- this.hostName = this.getHostAddress();
- }
- }
-
- return this.hostName;
- }
-
- public byte[] getAddress() {
- byte[] var1 = new byte[]{(byte)(this.address >>> 24 & 255), (byte)(this.address >>> 16 & 255), (byte)(this.address >>> 8 & 255), (byte)(this.address & 255)};
- return var1;
- }
-
- public String getHostAddress() {
- return (this.address >>> 24 & 255) + "." + (this.address >>> 16 & 255) + "." + (this.address >>> 8 & 255) + "." + (this.address & 255);
- }
-
- public int hashCode() {
- return this.address;
- }
-
- public boolean equals(Object var1) {
- return var1 != null && var1 instanceof InetAddress && ((InetAddress)var1).address == this.address;
- }
-
- public String toString() {
- return (this.hostName != null ? this.hostName + "/" : "") + this.getHostAddress();
- }
-
- public static synchronized InetAddress getByName(String var0) throws UnknownHostException {
- return var0 != null && var0.length() != 0 ? getAllByName(var0)[0] : loopbackHost;
- }
-
- public static synchronized InetAddress[] getAllByName(String var0) throws UnknownHostException {
- Object var1 = null;
- if (var0 == null) {
- throw new UnknownHostException(var0);
- } else {
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null && !var2.getInCheck()) {
- var2.checkConnect(var0, -1);
- }
-
- Object var3 = addressCache.get(var0);
- if (var3 == null) {
- try {
- byte[][] var4 = lookupAllHostAddr(var0);
- InetAddress[] var5 = new InetAddress[var4.length];
-
- for(int var6 = 0; var6 < var4.length; ++var6) {
- byte[] var7 = var4[var6];
- var5[var6] = new InetAddress(var0, var7);
- InetAddress[] var8 = new InetAddress[1];
- String var9 = new String(var5[var6].getHostAddress());
- var8[0] = new InetAddress(var9, var7);
- addressCache.put(var9, var8);
- }
-
- var3 = var5;
- } catch (UnknownHostException var11) {
- var3 = unknownAddress;
- }
-
- addressCache.put(var0, var3);
- }
-
- if (var3 == unknownAddress) {
- throw new UnknownHostException(var0);
- } else {
- try {
- var1 = ((InetAddress[])var3).clone();
- } catch (CloneNotSupportedException var10) {
- ((Throwable)var10).printStackTrace();
- }
-
- return (InetAddress[])var1;
- }
- }
- }
-
- public static InetAddress getLocalHost() throws UnknownHostException {
- InetAddress var0 = localHost;
- InetAddress var1 = unknownAddress;
- if (var1 == null || !(var1 instanceof InetAddress) || (var1).address != var0.address && true) {
- SecurityManager var3 = System.getSecurityManager();
-
- try {
- if (var3 != null && !var3.getInCheck()) {
- var3.checkConnect(localHost.getHostName(), -1);
- }
- } catch (SecurityException var2) {
- return loopbackHost;
- }
-
- return localHost;
- } else {
- throw new UnknownHostException();
- }
- }
-
- private static native String getLocalHostName() throws UnknownHostException;
-
- private static native void makeAnyLocalAddress(InetAddress var0);
-
- private static native byte[] lookupHostAddr(String var0) throws UnknownHostException;
-
- private static native byte[][] lookupAllHostAddr(String var0) throws UnknownHostException;
-
- private static native String getHostByAddr(int var0) throws UnknownHostException;
-
- private static native int getInetFamily();
-
- static {
- System.loadLibrary("net");
- addressCache = new Hashtable();
- unknownAddress = new InetAddress();
- anyLocalAddress = new InetAddress();
- makeAnyLocalAddress(anyLocalAddress);
- byte[] var0 = new byte[]{127, 0, 0, 1};
- loopbackHost = new InetAddress("localhost", var0);
-
- try {
- localHost = getByName(getLocalHostName());
- } catch (Exception var3) {
- localHost = unknownAddress;
- }
-
- String var1 = new String("0.0.0.0");
- InetAddress[] var2 = new InetAddress[]{new InetAddress(var1, unknownAddress.getAddress())};
- addressCache.put(var1, var2);
- }
- }
-